package com.d3works.apps.supplychain.service;

import com.d3works.apps.base.db.Product;
import com.d3works.apps.sale.db.SaleOrder;
import com.d3works.apps.sale.db.SaleOrderLine;
import com.d3works.exception.D3worksException;
import java.math.BigDecimal;

public interface SaleOrderSupplychainService {

  public void updateToConfirmedStatus(SaleOrder saleOrder) throws D3worksException;

  public String createShipmentCostLine(SaleOrder saleOrder) throws D3worksException;

  boolean alreadyHasShippingCostLine(SaleOrder saleOrder, Product shippingCostProduct);

  SaleOrderLine createShippingCostLine(SaleOrder saleOrder, Product shippingCostProduct)
      throws D3worksException;

  String removeShipmentCostLine(SaleOrder saleOrder);

  BigDecimal computeExTaxTotalWithoutShippingLines(SaleOrder saleOrder);

  public void setDefaultInvoicedAndDeliveredPartnersAndAddresses(SaleOrder saleOrder);
}
